package com.ruoyi.system.mapper;

import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.system.domain.RoomRecordmessage;

/**
 * 房间信息记录Mapper接口
 * 
 * @author xyz
 * @date 2025-07-01
 */
public interface RoomRecordmessageMapper 
{
    /**
     * 查询房间信息记录
     * 
     * @param id 房间信息记录主键
     * @return 房间信息记录
     */
    public RoomRecordmessage selectRoomRecordmessageById(Long id);

    /**
     * 查询房间信息记录列表
     * 
     * @param roomRecordmessage 房间信息记录
     * @return 房间信息记录集合
     */
    public List<RoomRecordmessage> selectRoomRecordmessageList(RoomRecordmessage roomRecordmessage);

    /**
     * 新增房间信息记录
     * 
     * @param roomRecordmessage 房间信息记录
     * @return 结果
     */
    public int insertRoomRecordmessage(RoomRecordmessage roomRecordmessage);

    /**
     * 修改房间信息记录
     * 
     * @param roomRecordmessage 房间信息记录
     * @return 结果
     */
    public int updateRoomRecordmessage(RoomRecordmessage roomRecordmessage);

    /**
     * 删除房间信息记录
     * 
     * @param id 房间信息记录主键
     * @return 结果
     */
    public int deleteRoomRecordmessageById(Long id);

    /**
     * 批量删除房间信息记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRoomRecordmessageByIds(Long[] ids);

    /**
     * 根据用户ID查询所在房间记录信息
     * @param userId 用户ID
     * @return 房间记录信息集合
     */
    public List<RoomRecordmessage> selectRoomRecordmessageByUserId(String userId);

    /**
     * 根据房间名称和日期范围查询房间记录信息
     * @param cc 房间名称
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 房间记录信息集合
     */
    public List<RoomRecordmessage> selectRoomRecordmessageByDateRange(@Param("cc") String cc, @Param("startDate") Date startDate, @Param("endDate") Date endDate);

    /**
     * 根据房间名称和时间查询房间记录信息（简化版）
     * @param cc 房间名称
     * @param recordTime 记录时间（字符串格式：yyyy-MM-dd）
     * @return 房间记录信息集合
     */
    public List<RoomRecordmessage> selectRoomRecordmessageByCcAndTime(@Param("cc") String cc, @Param("recordTime") String recordTime);
}
